/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function (s) {
  //声明一个数组（栈）
  let stack = []
  //声明一个map，存储匹配的键值对
  let map = {
    '(': ')',
    '[': ']',
    '{': '}'
  }
  //遍历字符串
  for (let char of s) {
    //如果是左括号：入栈
    if (char === '(' || char === '[' || char === '{') {
      stack.push(char)
    } else {
      //如果是右括号：如果栈为空或栈顶元素不匹配，返回false
      if (stack.length === 0 || map[stack.pop()] !== char) return false
    }
  }
  //如果栈为空：匹配成功，返回true
  if (stack.length === 0) {
    return true
  } else {
    //如果栈非空：匹配失败，返回false
    return false
  }
};
console.log(isValid("()[]{}"))